package com.ctshk.rpc.order.hotel.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;


/**
 * @description 酒店订单详情
 * @author 谢诗宏
 * @date 2021/5/10
 */
@Data
@ApiModel(description="预订中心酒店订单详情DTO")
public class HotelOrderDetailDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "酒店订单id")
    private Long id;

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "订单金额(HKD)")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "销售方式", example = "打包销售/单品销售")
    private String salesMethods;

    @ApiModelProperty(value = "订单状态(1=待付款,2=待预订,3=预订成功,4=预订失败,5=已取消)")
    private Integer orderStatus;

    @ApiModelProperty(value = "付款状态(1=待付款,2=已付款,3=已取消)", example = "1")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态(1=待確認,2=確認預訂,3=確認取消)", example = "1")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态(2=审批中,3=审批通过,4=审批不通过)", example = "1")
    private Integer cancelStatus;

    @ApiModelProperty(value = "业务类型", example = "酒店")
    private String businessType;

    @ApiModelProperty(value = "产品类型", example = "外挂单/API")
    private String productType;

    @ApiModelProperty(value = "来源", example = "云平台")
    private String source;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty(value = "客户类型", example = "大客户 xxx公司")
    private String clientType;

    @ApiModelProperty(value = "付款到期时间,付款状态为代付款时需显示该字段")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "联系人姓名", example = "張三")
    private String contactName;

    @ApiModelProperty(value = "联系人电话", example = "+86-15118691111")
    private String contactMobile;

    @ApiModelProperty(value = "联系人电邮", example = "1159965@Gmail.com")
    private String contactEmail;

    @ApiModelProperty(value = "备注", example = "客人希望可以靠窗")
    private String remark;

    @ApiModelProperty(value = "总应收(HKD)", example = "5000.00")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "总实收(HKD)", example = "2000.00")
    private BigDecimal receiptAmount;

    @ApiModelProperty(value = "已退款(HKD)", example = "1000.00")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "预订须知", example = "这就是预订须知")
    private String customerNotice;

    @ApiModelProperty(value = "订单创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "酒店信息")
    private HotelInfoDTO hotelInfo;

    @ApiModelProperty(value = "酒店订单旅客信息")
    private HotelOrderTouristInfoDTO orderTourists;

    @ApiModelProperty(value = "酒店订单收款明细信息")
    private List<HotelOrderCollectionInfoDTO> orderCollections;

    @ApiModelProperty(value = "酒店退款记录信息")
    private List<HotelOrderRefundInfoDTO> hotelOrderRefunds;

}
